//==============================================================================
#include "CApp.h"

//==============================================================================
void CApp::OnLoop() {
    //--------------------------------------------------------------------------
    // Entities
    //--------------------------------------------------------------------------
    CObjetoAnimado* tmp;
    if(!CObjetoAnimado::ObjectList.empty()) {
        for(int i = CObjetoAnimado::ObjectList.size() - 1; i >= 0; i--) {
            tmp=CObjetoAnimado::ObjectList.at(i);
            if (tmp->Inactive){
                tmp->OnCleanup();
                if (tmp->Type == ENTITY_TYPE_BALA ||
                    tmp->Type == ENTITY_TYPE_BOMBA ||
                    tmp->Type == ENTITY_TYPE_EXPLOSION) {
                    delete tmp;
                }
                CObjetoAnimado::ObjectList.erase(CObjetoAnimado::ObjectList.begin() +i);
            }
            else
                CObjetoAnimado::ObjectList.at(i)->OnLoop();
        }
    }
    //Collision Events
    for(int i = 0;i < CObjectCol::ObjectColList.size();i++) {
        CObjetoAnimado* ObjetoA = CObjectCol::ObjectColList[i].ObjetoA;
        CObjetoAnimado* ObjetoB = CObjectCol::ObjectColList[i].ObjetoB;

        if(ObjetoA == NULL || ObjetoB == NULL) continue;

        if(ObjetoA->OnCollision(ObjetoB)) {
            ObjetoB->OnCollision(ObjetoA);
        }
    }

    CObjectCol::ObjectColList.clear();

    CFPS::FPSControl.OnLoop();

    char Buffer[255];
    //sprintf(Buffer, "FPS: %d", CFPS::FPSControl.GetFPS());
    if (Player.cantVidas>=0)
        sprintf(Buffer,"Bienvenido %s! Estas en el Nivel %d de la Campaña %d. "\
            "Tenes %d puntos. Te quedan %d bombas y %d vidas",
            Player.nombreJugador.c_str(), 1,2,Player.puntos,Player.cantBombas,
            Player.cantVidas);
    else
        sprintf(Buffer,"Lo siento %s perdiste! Pero el juego continua," \
                " apoya a los bombermen contra los zombies!",
            Player.nombreJugador.c_str());
    SDL_WM_SetCaption(Buffer, Buffer);
}

//==============================================================================
